% preamble

% misc packages
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{url}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{pdflscape}
%\usepackage{lscape}
\usepackage[printonlyused]{acronym}
\usepackage{amsmath} 
\usepackage{amsfonts}
\usepackage{color} 
\usepackage[lofdepth,lotdepth]{subfig}
% header
\usepackage{fancyhdr}
\setlength{\headheight}{15.2pt}
\pagestyle{fancyplain}

% header definition
\fancyhf{}	% clear settings
 
% content
\lhead{\fancyplain{}{ISE - SS 12}}	%  lecture top left
\rhead{\fancyplain{}{Milestone 1}}		% exercise number top right
\cfoot{\fancyplain{}{\thepage}}			% pagenumber bottom center
\lfoot{\fancyplain{}{Borckholder, Graf, Penzinger}}		% authors bottom left

%ruler
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}


% document
\begin{document}

\title{Toolwahl}
\author{Chris Borckholder, Manuel Graf, Matthias Penzinger} 
\date{\today}
\maketitle

\section{\ac{is} - Überblick}
Verwendet wird ein klassisches LAMP-System bestehend aus 
\begin{itemize}
	\item \textbf{Debian 6},
	\item \textbf{Apache HTTP Server 2.4},
	\item \textbf{MySQL Community Server 5.5} und
	\item \textbf{PHP 5.4}
\end{itemize}
wobei der Webserver, die Datenbank und die Scriptsprache jeweils aus den momentan als \textit{stable} gekennzeichneten Source-Dateien kompiliert werden.
\\
Auf der nächsten Seite ist das gesamte System - für einen groben Überblick - als Grafik illustriert.

\begin{landscape}
\begin{figure}[p]
	\centering
	\includegraphics[width=1.79\textwidth]{system_structure_tools.png}
	\caption{Struktur der für das Informationssystem verwendeten Werkzeuge}
	\label{tools}
\end{figure}
\end{landscape}

\section{\ac{is} - Implementierung}
Das \ac{is} wird als Gast auf einer Ubuntu-Maschine in der \emph{Version 10.04 (Server-Edition)} installiert. Die Virtualisierung erfolgt über \emph{kvm} und kann neben serverseitigen Verwaltungstools auch über eine separate Workstation mittels \emph{virt-manager} angesprochen werden.

\subsection{Host}
Wie bereits erwähnt basiert der Host auf der Server-Edition von Ubuntu 10.04 und ist durch eine statische IP-Adresse öffentlich erreichbar. Zur Nutzung als Host wird \emph{qemu-kvm} verwendet und das Netzwerk-Interface als Bridge mittels \emph{bridge-utils} betrieben, was erlaubt jeder \ac{vm} eine aus dem Host-Netzwerk stammende IP-Adresse zuzuweisen. Die \ac{vm} kann somit als vom Host ``unabhängige'' Instanz angesprochen werden. Neben qemu-kvm kommt auch das Paket \emph{libvirt-bin} zum Einsatz welches eine direkte Verwaltung der \ac{vm} am Host erlaubt.

\subsection{Guest}
Das eigentliche \ac{is} soll auf \emph{Debian 6 (amd64-Version)} implementiert werden. Verwendet werden hier - wie bereits oben beschrieben - Apache, MySQL und PHP. Möglicherweise sollen auch einzelne Features des \ac{is} mittels \ac{ajax} realisiert werden und zur besseren Administration der Datenbank phpMyAdmin zum Einsatz kommen. Während der Implementierung kann jedes Teammitglied über \emph{ssh} auf den Server zugreifen und Veränderungen vornehmen. Um bezüglich der Erstellung des \ac{is} eine genaue Nachverfolgung der Einzelschritte vornehmen zu können wird jeder Whizz in die sudoers-Liste aufgenommen. Somit wird umgangen dass alle Teammitglieder den root-Account gemeinsam verwenden müssen.

\subsubsection{Ausbau - Stufe 1}
Als erste Ausbaustufe soll das \ac{is} gemäß der allgemeinen Vorgaben der \ac{lv} mit den unter Guest beschriebenen Mitteln aufgebaut werden. Um das System möglichst modular und erweiterbar zu gestalten soll die Implementierung entsprechend des MVC-Patterns erfolgen.
\subsubsection{Ausbau - Stufe 2}
In einer weiteren Ausbaustufe wäre die Implementierung eines Highly-Available-Clusters bestehend aus zwei über \emph{drbd} und \emph{heartbeat} gekoppelten VMs angedacht. Diese Erweiterung des \ac{is} findet jedoch nur Umsetzung sofern innerhalb der \ac{lv} genügend Zeit dafür bleibt.
\subsection{Management - Workstation}
Die initiale Installation der \ac{vm} wird über eine Management-Workstation erfolgen welche mit \emph{virt-manager} ausgestattet ist. Dies hat einerseits den Vorteil dass der Host nicht über eine grafische Oberfläche verfügen muss (Sicherheit, Performance) und andererseits auch bei einem Ausfall des \emph{ssh-Servers} auf der \ac{vm}, diese weiterhin über den \emph{Virtual Machine Manager} zugänglich ist.
\subsection{Utils}
Ebenfalls angedacht ist eine clientseitige Implementierung eines Java-Programms zur Erstellung von Dummy-Daten.

\begin{appendix}
\section{Verwendete Abkürzungen}
\begin{acronym}
% Format der Abkürzungsdefinition: \acro{}[]{}
% {Verweis}[Abkürzung]{ausgeschriebene Abkürzung}
\acro{vm}[VM]{Virtual Machine}
\acro{is}[IS]{Information System}
\acro{lv}[LV]{Lehrveranstaltung}
\acro{ajax}[AJAX]{Asynchronous JavaScript and XML}
\end{acronym}
\end{appendix}

\end{document}